package com.bjxst;
/**通过缓冲区提高读写效率 方式一（常用）（效率比方式二慢点，但节省空间）
 * 通过创建一个指定长度的字节数组作为缓冲区，以此来提高IO流的读写效率，
 * 适用于读取较大的图片缓冲区定义。注意：缓冲区的长度一定是2的整数幂，一般情况下
 * 1024长度较为合适*/
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class FileStreamTest {
    public static void main(String[] args) {
        FileInputStream fis = null;
        FileOutputStream fos = null;

        //创建对象
        try{
            fis = new FileInputStream("e:/picture/2001.png");
            fos = new FileOutputStream("e:/aa.png");
            //创建缓冲区，提高读写效率
            byte[] buff = new byte[1024];
            int temp = 0;
            //fis.read(buff) 返回的是这个数组的长度
            while ((temp=fis.read(buff)) != -1){
                fos.write(buff,0,temp);
            }
            //将数据从内存中写入到磁盘中
            fos.flush();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                if(fis != null){
                    fis.close();
                }
                if(fos != null){
                    fos.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

}
